package com.qf.blog.controller.web;
import javax.servlet.annotation.WebServlet;

import com.alibaba.fastjson.JSON;
import com.qf.blog.core.servlet.BaseServlet;
import com.qf.blog.entity.InvitataionEntity;
import com.qf.blog.entity.UserEntity;
import com.qf.blog.service.ICommentService;
import com.qf.blog.service.IInvitataionService;
import com.qf.blog.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 帖子详情
 * @author zyt
 * @version 1.0
 */
@WebServlet
public class InvitataionServlet extends BaseServlet {
     //声明评论的业务层对象
    private ICommentService iCommentService;
    // 声明用户的业务层对象
    private UserService userService;
    // 声明帖子的业务层对象
    private IInvitataionService invitataionService;

    /**
     * 复写父类的方法给上面的属性赋值
     * @return
     */
    @Override
    public void myInit(){
        //  1.创建Spring的 IOC 容器
        ApplicationContext t = new ClassPathXmlApplicationContext("beans.xml");
        // 下面是通过getbean给上面的属性初始化
         iCommentService = t.getBean(ICommentService.class);
         userService = t.getBean(UserService.class);
         invitataionService = t.getBean(IInvitataionService.class);
    }

    /**
     *发帖
     */
    public String publish ()throws Exception{
        // 先通过request.getsession获取session.在通过getattribute（key）获取登录用户
        UserEntity userentity = (UserEntity) req.getSession().getAttribute("loginUser");
        // 判断用户有没有登录
        if (userentity==null){
            return outJson(100,"您还没有登录！请先登录再尝试！");
        }
        // 2. 获取前端传递的数据
        String s = req.getReader().readLine();// 获取一个流 一行一行的把数据读进来
        // 转成对象
        InvitataionEntity invitataionEntity= JSON.parseObject(s,InvitataionEntity.class);
        // 3. 把登录用户的id封装
        invitataionEntity.setId(userentity.getId());
        // 帖子插入的方法 给了新建帖子初始值
        boolean save = invitataionService.save(invitataionEntity);
        return  outJson(save);
    }

    /**
     * 查询所有帖子
     * @return
     */
        public String inof(){
        // 1.getParameter(String name);通过表单元素的name属性名获得value属性值
            String id = req.getParameter("id");
         //2. 根据id查询帖子
//            InvitataionEntity invitataionEntity = invitataionService.byId(Integer.parseInt(id));

         // 3. 查询作者


         //4.查询帖子的评论

            return null ;
        }
}
